home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
tcqb.arc
/
TCQB.C
< prev
next >
Wrap
Text File
|
1988-02-29
|
2KB
|
143 lines
#pragma inline
#define DLE 16
#define ENQ 5
#define ESC 27
void _setenvp(void){} /* dummy out _setenvp */
int _stklen = 0x200;
exit(int n)
{
_exit(n);
}
int user_abort()
{
if(chkkbd())
{
if(fgetkey()==ESC)
return 1;
}
return 0;
}
stoi(s)
register char *s;
{
register unsigned int j;
j=0;
while(*s>='0' && *s<='9') /* loop through and convert */
j=j*10+(*s++-'0');
return j;
}
cls()
{
putchar(ESC);
putchar('[');
putchar('2');
putchar('J');
}
unsigned int mono;
unsigned int scrseg;
main(argc,argv)
int argc;
char **argv;
{
unsigned int baud,port;
unsigned int duplex;
int ch;
/* disable break key */
asm mov ah,33h
asm mov al,1
asm mov dl,0
asm int 21h
sput("TCQB version 1.1e, 2/29/88: Copyright 1988, John Bridges (CIS:73307,606)\r\n");
duplex=0;
baud=0;
port=1;
if(argc>1)
{
ch=*argv[1];
if(ch>='a' && ch<='z')
ch-=32;
if(ch=='F')
duplex=0;
else
if(ch=='H')
duplex=1;
else
bad();
}
if(argc>2)
{
port=stoi(argv[2]);
if(port<1 || port>2)
bad();
}
if(argc>3)
baud=stoi(argv[3]);
cominit(baud,port);
for(;;)
{
while(chkkbd())
{
ch=fgetkey();
switch(ch)
{
case ESC:
case 45|256: /* Alt-X */
goto quit;
case 18|256: /* Alt-E */
duplex=!duplex;
break;
case 46|256: /* Alt-C */
cls();
break;
default:
if(ch<256)
{
if(duplex)
putchar(ch);
cputc(ch);
}
}
}
if((ch=getcom())!=-1)
{
switch(ch&=0x7f)
{
case DLE:
bp_DLE();
break;
case ENQ:
bp_ENQ();
break;
case 'L'-64: /* Form Feed */
cls();
break;
default:
putchar(ch);
}
}
}
quit: comrest();
sput("\r\n");
}
bad()
{
sput("\r\n usage: TCQB [[[HALF|FULL] PORTNUMBER] BAUDRATE]\r\n");
exit(1);
}